package MyRedis

/**
InterfaceResult  统一Interface 返回
*/
type InterfaceResult struct {
	Interface interface{}
	Err       error
}

/**
NewInterfaceResult
*/
func NewInterfaceResult(inter interface{}, err error) *InterfaceResult {
	return &InterfaceResult{Interface: inter, Err: err}
}

/**
Unwrap 无错误返回 Interface 有错误panic
*/
func (r *InterfaceResult) Unwrap() interface{} {
	if r.Err != nil {
		panic(r.Err)
	}
	return r.Interface
}

/**
UnwrapDefault 无错误返回 Interface 有错误返回默认defaultInter
*/
func (r *InterfaceResult) UnwrapDefault(defaultInter interface{}) interface{} {
	if r.Err != nil {
		return defaultInter
	}
	return r.Interface
}
